<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
         不改变方法

           concat （参数）
                数组的拼接（合并数组）

                参数可以是一个数组，也可以一个元素

                不会真的改变数组本身，返回一个数组保存合并的结果
        */
        var arr1 = [1, 2, 3];
        var arr2 = [4, 5, 6];
        // 把arr2的元素 合并到arr1中，返回了新数组
        // 新数组保存合并的结果，不改变arr1
        var resArr = arr1.concat(arr2);
        console.log(arr1);//[1, 2, 3]
        console.log(resArr);//[1, 2, 3, 4, 5, 6]


        // 把arr2中的元素 和 100 ，200 放到一个新数组中返回
        var resArr2 = arr2.concat(100, 200, [9, 8])
        console.log(resArr2);//[4, 5, 6, 100, 200, 9, 8]


        //  - `join` 是把数组里面的每一项内容链接起来，变成一个字符串
        // - 可以自己定义每一项之间链接的内容 `join(要以什么内容链接)`
        // - 不会改变原始数组，而是把链接好的字符串返回
        var nameArr = ['zhangsan', 'lisi', 'wangwu'];

        // zhangsan-lisi-wangwu
        // var resStr = nameArr.join('-');zhangsan-lisi-wangwu
        // var resStr = nameArr.join();//默认用逗号--hangsan,lisi,wangwu
        var resStr = nameArr.join('');//zhangsanlisiwangwu
        console.log(resStr);

        var stuArr = [{ name: 'zhangsan' }, { name: 'lisi' }]
        // 数组 中放的是对象，不能直接使用join
        var resStr2 = stuArr.join('-');
        console.log(resStr2);//[object Object]-[object Object]

        var nameArr2 = [];
        // 循环遍历-根据对象数组--生成字符串数组
        var str = '';
        for (var i = 0; i < stuArr.length; i++) {
            var obj = stuArr[i];
            nameArr2.push(obj.name)

            str += '-' + obj.name
        }
        //  ['zhangsan', 'lisi']
        console.log(nameArr2);
        console.log(nameArr2.join('-'));//zhangsan-lisi

        console.log(str);//-zhangsan-lisi

        // ***如果数组没有对应的方法 -完成需要的功能-自己用循环遍历

    </script>

</body>

</html>